package com.zhrj.exam.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhrj.exam.tool.GenderConverter;
import com.zhrj.exam.tool.IsDeletedConverter;
import com.zhrj.exam.tool.StatusConverter;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;


/**
* 用户表
* @TableName blade_user
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("blade_user")
public class BladeUser implements Serializable {

    /**
    * 主键
    */
    @TableId(type = IdType.NONE)
    @ExcelProperty("id")
    @ColumnWidth(30)
    private Long id;
    /**
    * 租户ID
    */
    @ExcelProperty("租户id")
    @ColumnWidth(10)
    private String tenantId;
    /**
    * 用户编号
    */
    @ExcelProperty("用户编号")
    @ColumnWidth(10)
    private String code;
    /**
    * 账号
    */
    @ExcelProperty("账号")
    @ColumnWidth(10)
    private String account;
    /**
    * 密码
    */

    @ExcelProperty("密码")
    @ColumnWidth(30)
    private String password;
    /**
    * 昵称
    */
    @ExcelProperty("昵称")
    @ColumnWidth(10)
    private String name;
    /**
    * 真名
    */
    @ExcelProperty("真实姓名")
    @ColumnWidth(10)
    private String realName;
    /**
    * 头像
    */
    @ExcelProperty("头像")
    @ColumnWidth(10)
    private String avatar;
    /**
    * 邮箱
    */
    @ExcelProperty("邮箱")
    @ColumnWidth(30)
    private String email;
    /**
    * 手机
    */
    @ExcelProperty("手机号码")
    @ColumnWidth(15)
    private String phone;
    /**
    * 生日
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("生日")
    @ColumnWidth(20)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date birthday;
    /**
    * 性别
    */
    @ExcelProperty(value = "性别", converter = GenderConverter.class)
    @ColumnWidth(10)
    private Integer sex;
    /**
    * 角色id
    */
    @ExcelProperty("角色id")
    @ColumnWidth(20)
    private String roleId;
    /**
    * 部门id
    */
    @ExcelProperty("部门id")
    @ColumnWidth(25)
    private String deptId;
    /**
    * 岗位id
    */
    @ExcelProperty("岗位id")
    @ColumnWidth(25)
    private String postId;
    /**
    * 创建人
    */
    @ExcelProperty("创建人")
    @ColumnWidth(20)
    private Long createUser;
    /**
    * 创建部门
    */
    @ExcelProperty("创建部门")
    @ColumnWidth(20)
    private Long createDept;
    /**
    * 创建时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("创建时间")
    @ColumnWidth(20)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
    * 修改人
    */
    @ExcelProperty("修改人")
    @ColumnWidth(20)
    private Long updateUser;
    /**
    * 修改时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("修改时间")
    @ColumnWidth(20)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
    * 状态
    */
    @ExcelProperty(value = "状态",converter = StatusConverter.class)
    @ColumnWidth(10)
    private Integer status;
    /**
    * 是否已删除
    */
    @ExcelProperty(value = "是否已经删除",converter = IsDeletedConverter.class)
    @ColumnWidth(15)
    private Integer isDeleted;
}
